library(dplyr)
library(readr)
library(spatstat)
library(ggExtra)

df<-read_csv("H07-0500_79205589_179_MBP.csv")
Rows: 3604 Columns: 4
── Column specification ──────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (1): roi_source
dbl (3): com_x, com_y, pixel_area

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
a<-ggplot(df_full,
   aes( com_x,  com_y,size=pixel_area))+ geom_point(shape = ".")+xlab("x position in pixel")+ylab("y position in pixel")+theme_bw()+geom_jitter(width = 0, height = 0.001, alpha = 0.2)#+ theme(aspect.ratio = )

b<-ggMarginal(a,type="histogram",fill = "lightgrey",binwidth=20)
b

ln = with(df_full,
  ppp(x = com_x, y = com_y, marks = pixel_area, xrange = range(com_x), yrange = range(com_y)))
qq=quadratcount(ln,nx=3,ny=12)
plot(qq,main='')

quadrat.test(qq)

    Chi-squared test of CSR using quadrat counts

data:  
X2 = 483.24, df = 35, p-value < 2.2e-16
alternative hypothesis: two.sided

Quadrats: 3 by 12 grid of tiles
d = density(ln, edge=TRUE, diggle=TRUE,sigma=150)
plot(d)

x<- df$com_y
y <- df$com_x
library(MASS)
ln_3d <- kde2d(x, y)

persp(ln_3d, box=FALSE)


library(plotly)
plot_ly(x=ln_3d$x, y=ln_3d$y, z=ln_3d$z) %>% add_surface()
eG = envelope(ln, fun=Gest, nsim=200,nrank=1)
Generating 200 simulations of CSR  ...
1, 2, 3, 4.6.8.10.12.14.16.18.20.22.24.26.28.30.32.34.36.38.40
.42.44.46.48.50.52.54.56.58.60.62.64.66.68.70.72.74.76.78.80
.82.84.86.88.90.92.94.96.98.100.102.104.106.108.110.112.114.116.118.120
.122.124.126.128.130.132.134.136.138.140.142.144.146.148.150.152.154.156.158.160
.162.164.166.168.170.172.174.176.178.180.182.184.186.188.190.192.194.196.198. 200.

Done.
plot(eG)

LS0tCnRpdGxlOiAiUmVwb3J0IEZpZ3VyZXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KYGBge1J9CmxpYnJhcnkoZHBseXIpCmxpYnJhcnkocmVhZHIpCmxpYnJhcnkoc3BhdHN0YXQpCmxpYnJhcnkoZ2dFeHRyYSkKYGBgCgpgYGB7UiBTY2F0dGVycGxvdCBhbmQgTWFyZ2luYWwgZGlzdHJpYnV0aW9uc30KZGY8LXJlYWRfY3N2KCJIMDctMDUwMF83OTIwNTU4OV8xNzlfTUJQLmNzdiIpCmE8LWdncGxvdChkZl9mdWxsLAogICBhZXMoIGNvbV94LCAgY29tX3ksc2l6ZT1waXhlbF9hcmVhKSkrIGdlb21fcG9pbnQoc2hhcGUgPSAiLiIpK3hsYWIoInggcG9zaXRpb24gaW4gcGl4ZWwiKSt5bGFiKCJ5IHBvc2l0aW9uIGluIHBpeGVsIikrdGhlbWVfYncoKStnZW9tX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IDAuMDAxLCBhbHBoYSA9IDAuMikjKyB0aGVtZShhc3BlY3QucmF0aW8gPSApCmI8LWdnTWFyZ2luYWwoYSx0eXBlPSJoaXN0b2dyYW0iLGZpbGwgPSAibGlnaHRncmV5IixiaW53aWR0aD0yMCkKYgpgYGAKCmBgYHtSIFF1YWRyYXQgY291bnQsd2FybmluZz1GQUxTRSxtZXNzYWdlPUZBTFNFfQpsbiA9IHdpdGgoZGZfZnVsbCwKICBwcHAoeCA9IGNvbV94LCB5ID0gY29tX3ksIG1hcmtzID0gcGl4ZWxfYXJlYSwgeHJhbmdlID0gcmFuZ2UoY29tX3gpLCB5cmFuZ2UgPSByYW5nZShjb21feSkpKQpxcT1xdWFkcmF0Y291bnQobG4sbng9MyxueT0xMikKcGxvdChxcSxtYWluPScnKQpxdWFkcmF0LnRlc3QocXEpCmBgYAoKYGBge1IgRmlyc3Qgb3JkZXIgaW50ZW5zaXR5fQpkID0gZGVuc2l0eShsbiwgZWRnZT1UUlVFLCBkaWdnbGU9VFJVRSxzaWdtYT0xNTApCnBsb3QoZCkKYGBgCgpgYGB7UiAzIGRpbWVuc2lvbmFsIGtlcm5lbCBkZW5zaXR5IHBsb3R9Cng8LSBkZiRjb21feQp5IDwtIGRmJGNvbV94CmxpYnJhcnkoTUFTUykKbG5fM2QgPC0ga2RlMmQoeCwgeSkKCnBlcnNwKGxuXzNkLCBib3g9RkFMU0UpCgpsaWJyYXJ5KHBsb3RseSkKcGxvdF9seSh4PWxuXzNkJHgsIHk9bG5fM2QkeSwgej1sbl8zZCR6KSAlPiUgYWRkX3N1cmZhY2UoKQpgYGAKCmBgYHtSIEcgZnVuY3Rpb24gZm9yIFoocyl9CmVHID0gZW52ZWxvcGUobG4sIGZ1bj1HZXN0LCBuc2ltPTIwMCxucmFuaz0xKQpwbG90KGVHKQpgYGAKCmBgYHtSIEsgZnVuY3Rpb24gZm9yIFoocyl9CmVLID0gZW52ZWxvcGUobG4sIGZ1bj1LaW5ob20sIG5zaW09MjAwLG5yYW5rPTEpCnBsb3QoZUsseGxpbT1jKDAsMjUpKQpwbG90KGVLLHhsaW09YygwLDUpKQpgYGAKYGBge1J9CmVMPWVudmVsb3BlKGxuLCBmdW49TGluaG9tLCBuc2ltPTIwMCxucmFuaz0xKQpwbG90KGVMLHhsaW09YygwLDI1KSkKYGBgCgo=